81 research outputs found

    Variadic genericity through linguistic reflection : a performance evaluation

    Get PDF
    This work is partially supported by the EPSRC through Grant GR/L32699 “Compliant System Architecture” and by ESPRIT through Working Group EP22552 “PASTEL”.The use of variadic genericity within schema definitions increases the variety of databases that may be captured by a single specification. For example, a class of databases of engineering part objects, in which each database instance varies in the types of the parts and the number of part types, should lend itself to a single definition. However, precise specification of such a schema is beyond the capability of polymorphic type systems and schema definition languages. It is possible to capture such generality by introducing a level of interpretation, in which the variation in types and in the number of fields is encoded in a general data structure. Queries that interpret the encoded information can be written against this general data structure. An alternative approach to supporting such variadic genericity is to generate a precise database containing tailored data structures and queries for each different instance of the virtual schema.1 This involves source code generation and dynamic compilation, a process known as linguistic reflection. The motivation is that once generated, the specific queries may execute more efficiently than their generic counter-parts, since the generic code is “compiled away”. This paper compares the two approaches and gives performance measurements for an example using the persistent languages Napier88 and PJama.Postprin

    Demonstration of hyper-programming in Java

    Get PDF
    We demonstrate the use of a hyper-programming system to build persistent Java applications in PJama, an orthogonally persistent version of Java. This allows program representations to contain type-safe links to persistent objects embedded directly within the source code. The potential benefits include greater potential for static program checking, improved efficiency, and reduced programming effort.Postprin

    System Evolution, Feedback and Compliant Architectures

    Get PDF
    Proceedings, International Workshop on Feedback and Evolution in Software and Business Processes (FEAST 2000), Imperial College, London. Supported by EPSRCPostprintNon peer reviewe

    Instances and connectors : issues for a second generation process language

    Get PDF
    This work is supported by UK EPSRC grants GR/L34433 and GR/L32699Over the past decade a variety of process languages have been defined, used and evaluated. It is now possible to consider second generation languages based on this experience. Rather than develop a second generation wish list this position paper explores two issues: instances and connectors. Instances relate to the relationship between a process model as a description and the, possibly multiple, enacting instances which are created from it. Connectors refers to the issue of concurrency control and achieving a higher level of abstraction in how parts of a model interact. We believe that these issues are key to developing systems which can effectively support business processes, and that they have not received sufficient attention within the process modelling community. Through exploring these issues we also illustrate our approach to designing a second generation process language.Postprin

    An active-architecture approach to COTS integration

    Get PDF
    Commercial off-the-shelf (COTS) software products are increasingly used as standard components within integrated information systems. This creates challenges since both their developers and source code are not usually available, and the ongoing development of COTS cannot be predicted. The ArchWare Framework approach recognises COTS products as part of the ambient environment of an information system and therefore an important part of development is incorporating COTS as effective system components. This integration of COTS components, and the composition of components, is captured by an active architecture model which changes as the system evolves. Indeed the architecture modelling language used enables it to express the monitoring and evolution of a system. This active architecture model is structured using control system principles. By modelling both integration and evolution it can guide the system’s response to both predicted and emergent changes that arise from the use of COTS products.Publisher PDFPeer reviewe

    OCB : An object/class browser for Java

    Get PDF
    'This work is partially supported by the EPSRC under grant GR/J 67611 “Delivering the Benefits of Persistence to System Construction”'This paper describes an interactive browser used for exploring the structure of Java objects and their classes. It is implemented in Java and uses JDK 1.1 core reflection classes to discover details of the objects passed to it. The initial motivation for development arose from the need to browse persistent Java stores; the browser may also be useful as a symbolic debugging and visualisation tool.Postprin

    A persistent view of encapsulation

    Get PDF
    This work was supported by EPSRC Grants GR/J67611 “Delivering the Benefits of Persistence” and GR/L32699 “Compliant Systems Architecture”, and the ESPRIT Working Group EP22552 “PASTEL”.Orthogonal persistence ensures that information will exist for as long as it is useful, for which it must have the ability to evolve with the growing needs of the application systems that use it. The need for evolution has been well recognised in the traditional (data processing) database community and the cost of failing to evolve can be gauged by the resources being invested in interfacing with legacy systems. Zdonik has identified new classes of application, such as scientific, financial and hypermedia, that require new approaches to evolution. These applications are characterised by their need to store large amounts of data whose structure must evolve as it is discovered. Here, we discuss one particular problem of evolution in these new classes of application in relation to Object-Oriented Database Systems (OODBS): that of the tension between the encapsulation of data within objects and the need for the data be mapped dynamically to an evolving schema. We outline a solution taken from our persistent programming experience and show how it may be used in the O2 OODBS.Postprin

    Linguistic reflection in Java : a quantitative assessment

    Get PDF
    Linguistic reflection allows a running program to generate new program fragments and to integrate these into its own execution. The advantages of the technique include attaining high levels of genericity and accommodating system evolution. Here its use to provide generic programs in Java is compared for a particular example, natural join, against alternative implementation approaches.Postprin

    ACT : a tool for performance driven evolution of distributed applications

    Get PDF
    Also funded by the EPSRC CASE studentship 99802449There are two main stages to evolving distributed applications in the manner desired by application builders: first deciding which changes are required and when, and second making the changes. Understanding the performance characteristics of distributed applications is essential for the first stage, while structural reflection over the source code may be used to achieve the latter. Here we present an automated configuring tool, ACT, that may be used to explore the need for change by empirically measuring application performance. We aim to use the data generated by ACT as input to the evolution process, informing the system how to evolve to new and improved architectural configurations. ACT is designed to be generic in that it may aid performance-driven evolution for a wide range of applications. As a case study we use DC-Mailbox, a back-end mail server from Data Connection Limited (DCL) that stores, retrieves and manages e-mail messages for a potentially large number of users.PostprintPeer reviewe

    Hyper-programming in Java

    Get PDF
    Hyper-programming is a technology only available in persistent systems since hyper-program source contains both text and links to persistent objects. A hyper-programming system has already been prototyped in the persistent programming language Napier88. Here we report on the transfer of that technology to a more commercial platform, Java. The component technologies required for hyper-programming include linguistic reflection, a persistent store, and a browsing mechanism, all of which have been reported elsewhere. The topics of discussion here are the additional technologies of: the specification of denotable hyper-links in Java; a mechanism for preserving links over traditional compilation; a hyper-program editor; and the integration of the editor and the browser with the hyper-programming user interface. We describe their design and implementation. In total these technologies constitute a hyper-programming system in Java.Postprin
    • …
    corecore